文章未來將更新於:
https://kevinyay945.com/golang-project-design/2023/infrastructure-for-google-drive/
開啟一個Google Cloud的Development Project
到service account來新增一個account(進階設定都可以跳過)
點進剛剛建立的account產生一組授權的token
將這個檔案保存好,等等會需要使用
緊接著回到Detail這邊,將他的email複製,並且設定到你在google drive中的你希望共享的資料夾中共用名單中
接下來請在這個資料夾中放入一個不會跟別人重複名稱的檔案,並取得他的檔案名稱(假設叫做test.png)
將先前取得的token的文字放入.config.dev.yaml中(如果想要在yaml中放入換行,要加上>
)
![](https://asset.kevinyay945.com/v1/temp-link/obsidian/2023-09-03-t85ys.png
要將.config.dev.yaml的OPEN_INFRASTRUCTURE設定為true
接著就可以跑跑看Test_check_token這個測試,看有沒有順利的取得權限
將這個檔案名稱(test.png)放到Test_get_parent_id中,來取得此資料夾的id,這個id在上傳資料的時候需要提供,用來決定上傳的位置(要取改程式碼中的內容)
取得parent_id的方法,還有個比較方便的,只要使用網頁把目標共享的資料夾打開,他網址後半段帶的就是parent_id了
接下來下面的上傳圖片跟下載圖片的測試都可以試著跑跑看
https://github.com/kevinyay945/2023_asset_management/blob/v0.3.1/infrastructure/googledrive/google_drive_test.go#L67
https://github.com/kevinyay945/2023_asset_management/blob/v0.3.1/infrastructure/googledrive/google_drive_test.go#L73
另外,下面是我這次找文件的時候查詢的相關文章,如果未來有需要延伸其他功能的時候可以到下面這些網址找找看
https://developers.google.com/drive/api/quickstart/go?hl=en
query
https://developers.google.com/drive/api/guides/ref-search-terms?hl=en
get parent id
https://stackoverflow.com/questions/69932970/how-do-i-get-the-parent-folder-using-the-google-drive-api